package com.bluemoon.daps.test.sync.v1_3.model2prod;

import cn.com.bluemoon.daps.common.domain.UserInfoHolder;
import cn.com.bluemoon.daps.common.enums.SyncToEnv;
import cn.com.bluemoon.daps.sync.DapsSyncApplication;
import cn.com.bluemoon.daps.sync.service.DapModel2ProdSyncService;
import lombok.extern.slf4j.Slf4j;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

/**
 * 预发布
 *
 * @author Jarod.Kong
 * @date 2021/6/2 16:35
 */
@SpringBootTest(classes = DapsSyncApplication.class)
@RunWith(value = SpringRunner.class)
@Slf4j
public class Model2ProProdAndProdApi {
    @Autowired
    private DapModel2ProdSyncService model2ProdSyncService;
    private String modelId;
    private String taskId;

    @Before
    public void init(){
        this.modelId = "1414829904709677057";
        this.taskId = "1416013687585013762";
    }
    @Test
    public void test_sync_pre_prod_env() {
        boolean syncPublish = model2ProdSyncService.syncPublish(SyncToEnv.PROD, modelId, taskId, UserInfoHolder.getUserInfoOrEmpty());
        Assert.assertTrue(syncPublish);
    }

    /**
     * 获取申请发布写入到{@link cn.com.bluemoon.daps.sync.entity.DapSyncProdEnvTask}
     * 和{@link cn.com.bluemoon.daps.sync.entity.DapSyncProdEnvTaskDetail}中的数据
     * 模型单号->每个表的ddl变更记录
     * 分页查询
     */
    @Test
    public void test_sync_list_page() {

    }

    /**
     * 点击列表行数据获取操作日志列表
     */
    @Test
    public void test_click_sync_list_query_operation_list() {

    }

    /**
     * 点击同步预发布
     * 获取模型单号对应的同步信息
     * {@link cn.com.bluemoon.daps.sync.entity.DapSyncProdEnvTask}
     * {@link cn.com.bluemoon.daps.sync.entity.DapSyncProdEnvTaskDetail}
     * 的组合数据，只能查看，不可编辑
     */
    @Test
    public void test_click_sync_pre_prod_info() {

    }

    /**
     * 点击执行同步预发布
     */
    @Test
    public void test_click_exec_sync_pre_prod_() {

    }

    /**
     * 查看执行预发布同步的日志（区分预发布和生产环境）
     * 注：获取模型单号对应的所有变更表的日志结果进行汇总（合并）
     */
    @Test
    public void test_click_view_sync_pre_prod_execute_log() {

    }

    /**
     * 同步列表中查看模型单号下的执行日志（区分预发布和生产环境）
     */
    @Test
    public void test_click_sync_list_view_log() {
        test_click_view_sync_pre_prod_execute_log();
    }
}
